home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / bbsutils / thtmt227.arj / CHECK.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-02-15  |  5KB  |  318 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER002
  20.     Integer  INTEGER003
  21.     Integer  INTEGER004
  22.     Integer  INTEGER005
  23.     String   STRING001
  24.     String   STRING002
  25.     String   STRING003
  26.     String   STRING004
  27.     String   STRING005
  28.     String   STRING006
  29.     String   STRING007
  30.     String   STRING008
  31.     String   STRING009
  32.     String   STRING010
  33.     String   STRING011
  34.     String   STRING012
  35.     String   STRING013
  36.     String   STRING014
  37.     String   STRING015
  38.     String   STRING016
  39.     String   STRING017
  40.     String   STRING018
  41.     String   STRING019
  42.     String   STRING020
  43.     String   STRING021
  44.  
  45. ;------------------------------------------------------------------------------
  46.  
  47.     FDefIn 1
  48.     FDefOut 2
  49.     FOpen 1, PPEPath() + PPEName() + ".cnf", 0, 0
  50.     FGet 1, STRING010
  51.     FGet 1, STRING020
  52.     FGet 1, STRING021
  53.     FGet 1, STRING019
  54.     FGet 1, STRING009
  55.     FClose 1
  56.     If (STRING010 == NoChar()) Goto LABEL014
  57.     GetUser
  58.     STRING001 = 3
  59.     INTEGER002 = 0
  60.     INTEGER003 = 0
  61.     INTEGER004 = 0
  62.     INTEGER005 = 0
  63.     FOpen 1, PPEPath() + "tht-info.cfg", 0, 0
  64.     FGet 1, STRING002
  65.     FClose 1
  66.     Tokenize U_Name()
  67.     If (TokCount() == 3) Then
  68.         GetToken STRING016
  69.         GetToken STRING017
  70.         GetToken STRING018
  71.         STRING016 = Strip(STRING016, " ")
  72.         STRING018 = Strip(STRING018, " ")
  73.         STRING016 = Strip(STRING016, ".")
  74.         STRING018 = Strip(STRING018, ".")
  75.         STRING016 = Left(STRING016, 3)
  76.         STRING017 = Right(STRING018, 4)
  77.         If (Exist(PPEPath() + "apps\" + STRING016 + "_" + STRING017 + ".vot")) Then
  78.         Else
  79.             GetToken STRING016
  80.             GetToken STRING017
  81.             STRING016 = Strip(STRING016, " ")
  82.             STRING017 = Strip(STRING017, " ")
  83.             STRING016 = Strip(STRING016, ".")
  84.             STRING017 = Strip(STRING017, ".")
  85.             STRING016 = Left(STRING016, 3)
  86.             STRING017 = Right(STRING017, 4)
  87.             If (Exist(PPEPath() + "apps\" + STRING016 + "_" + STRING017 + ".vot")) Then
  88.             Endif
  89.             FOpen 2, PPEPath() + "apps\" + STRING016 + "_" + STRING017 + ".vot", 0, 0
  90.             :LABEL001
  91.             If (Ferr(2)) Goto LABEL003
  92.             FGet 2, STRING011
  93.             Tokenize STRING011
  94.             If (TokCount() == 4) Then
  95.                 GetToken STRING012
  96.                 GetToken STRING013
  97.                 GetToken STRING014
  98.                 GetToken STRING015
  99.                 If (STRING015 == "Y") Inc INTEGER004
  100.                 If (STRING015 == "N") Inc INTEGER005
  101.                 If (INTEGER004 >= STRING020) Goto LABEL003
  102.                 If (INTEGER005 >= STRING021) Goto LABEL003
  103.                 Goto LABEL002
  104.             Endif
  105.             If (TokCount() == 3) Then
  106.                 GetToken STRING012
  107.                 GetToken STRING013
  108.                 GetToken STRING014
  109.                 AnsiPos 30, STRING001
  110.                 If (STRING014 == "Y") Inc INTEGER004
  111.                 If (STRING014 == "N") Inc INTEGER005
  112.                 If (INTEGER004 >= STRING020) Goto LABEL003
  113.                 If (INTEGER005 >= STRING021) Goto LABEL003
  114.                 Goto LABEL002
  115.             Endif
  116.             If (TokCount() == 2) Then
  117.                 GetToken STRING012
  118.                 GetToken STRING013
  119.                 AnsiPos 30, STRING001
  120.                 If (STRING013 == "Y") Inc INTEGER004
  121.                 If (STRING013 == "N") Inc INTEGER005
  122.                 If (INTEGER004 >= STRING020) Goto LABEL003
  123.                 If (INTEGER005 >= STRING021) Goto LABEL003
  124.                 Inc STRING001
  125.             Endif
  126.             :LABEL002
  127.             Goto LABEL001
  128.             :LABEL003
  129.             STRING007 = INTEGER004
  130.             STRING008 = INTEGER005
  131.             FClose 2
  132.             Cls
  133.             AnsiPos 7, 1
  134.             PrintLn "@X7ENew User@X7F'@X7Es Voting Results @X7Ffrom @X74Master Beta @X7F@ @X74<<@X7ETHT@X74>>@X07"
  135.             AnsiPos 30, 2
  136.             PrintLn "@X1Fv 2@X1F.@X1C07@X07"
  137.             AnsiPos 6, 3
  138.             PrintLn "@X34╔════════════════════════════════════════════════════╗@X07"
  139.             AnsiPos 6, 4
  140.             PrintLn "@X34║  @X3E" + U_Name() + "@POS:25@" + "  @X30" + U_City + "@POS:59@@X34║@X07"
  141.             AnsiPos 6, 5
  142.             PrintLn "@X34║              @X39Your Current Stats @POS:59@@X34║@X07"
  143.             AnsiPos 6, 6
  144.             PrintLn "@X34║@POS:59@@X34║@X07"
  145.             AnsiPos 6, 7
  146.             PrintLn "@X04@X34║@X38Votes for You> @X30" + STRING007 + "@POS:59@@X34║@X07"
  147.             AnsiPos 6, 8
  148.             PrintLn "@X34║@POS:59@@X34║@X07"
  149.             AnsiPos 6, 9
  150.             PrintLn "@X34║@X38Votes against You> @X30" + STRING008 + "@POS:59@@X34║@X07"
  151.             AnsiPos 6, 10
  152.             PrintLn "@X34║@POS:59@║@X07"
  153.             AnsiPos 6, 11
  154.             PrintLn "@X34║@X3EYou Need @X31" + STRING020 + "@X3E Votes to gain Access to the Board" + "@POS:59@@X34║@X07"
  155.             AnsiPos 6, 12
  156.             PrintLn "@X34║@POS:59@║@X07"
  157.             AnsiPos 6, 13
  158.             PrintLn "@X34╚════════════════════════════════════════════════════╝@X07"
  159.             FreshLine
  160.             Wait
  161.             If (INTEGER004 >= STRING020) Goto LABEL004
  162.             If (INTEGER005 >= STRING021) Goto LABEL009
  163.             If (STRING009 == YesChar()) Goodbye
  164.             Goto LABEL014
  165.             :LABEL004
  166.             U_Sec = STRING019
  167.             PutUser
  168.             AnsiPos 6, 14
  169.             PrintLn "@X0EYou have been accepted as a @X0CUSER @X0Eon this Board@X07"
  170.             FOpen 1, PPEPath() + "apps\waiting.app", 2, 0
  171.             FAppend 2, PPEPath() + "apps\waiting.tmp", 1, 0
  172.             :LABEL005
  173.             If (Ferr(1)) Goto LABEL007
  174.             FGet 1, STRING004
  175.             Tokenize STRING004
  176.             GetToken STRING005
  177.             GetToken STRING006
  178.             If (STRING004 == "") Goto LABEL008
  179.             If ((STRING005 + " " + STRING006 == U_Name()) || (STRING005 == U_Name())) Then
  180.                 PrintLn 
  181.                 Goto LABEL006
  182.             Endif
  183.             FPutLn 2, STRING004
  184.             :LABEL006
  185.             Goto LABEL005
  186.             :LABEL007
  187.             FClose 2
  188.             :LABEL008
  189.             FClose 1
  190.             FClose 2
  191.             Copy PPEPath() + "APPS\waiting.tmp", PPEPath() + "APPS\waiting.app"
  192.             Delete PPEPath() + "APPS\waiting.tmp"
  193.             Delete PPEPath() + "apps\" + STRING016 + "_" + STRING017 + ".vot"
  194.             Delete PPEPath() + "apps\" + STRING016 + "_" + STRING017 + ".GRP"
  195.             Delete PPEPath() + "apps\" + STRING016 + "_" + STRING017 + ".cmt"
  196.             For STRING003 = STRING002 To 1 Step -1
  197.                 Delete PPEPath() + "apps\" + STRING016 + "_" + STRING017 + "." + STRING003
  198.             Next
  199.             Wait
  200.             Goto LABEL014
  201.             :LABEL009
  202.             PrintLn "@X0CSorry but your Application has been Refused@X8C!!!!@X07"
  203.             U_Sec = "0"
  204.             PutUser
  205.             FOpen 1, PPEPath() + "apps\waiting.app", 2, 0
  206.             FAppend 2, PPEPath() + "apps\waiting.tmp", 1, 0
  207.             :LABEL010
  208.             If (Ferr(1)) Goto LABEL012
  209.             FGet 1, STRING004
  210.             Tokenize STRING004
  211.             GetToken STRING005
  212.             GetToken STRING006
  213.             If (STRING004 == "") Goto LABEL013
  214.             If ((STRING005 + " " + STRING006 == U_Name()) || (STRING005 == U_Name())) Then
  215.                 PrintLn 
  216.                 Goto LABEL011
  217.             Endif
  218.             FPutLn 2, STRING004
  219.             :LABEL011
  220.             Goto LABEL010
  221.             :LABEL012
  222.             :LABEL013
  223.             FClose 2
  224.             FClose 1
  225.             Copy PPEPath() + "APPS\waiting.tmp", PPEPath() + "APPS\waiting.app"
  226.             Delete PPEPath() + "APPS\waiting.tmp"
  227.             Hangup
  228.             Goto LABEL014
  229.         Endif
  230.     Endif
  231.     :LABEL014
  232.     FClose 1
  233.     FClose 2
  234.     End
  235.  
  236. ;------------------------------------------------------------------------------
  237. ;
  238. ; Usage report (before postprocessing)
  239. ;
  240. ; ■ Statements used :
  241. ;
  242. ;    1       End
  243. ;    1       Cls
  244. ;    2       Wait
  245. ;    37      Goto 
  246. ;    23      Let 
  247. ;    17      PrintLn 
  248. ;    30      If 
  249. ;    5       FOpen 
  250. ;    2       FAppend 
  251. ;    10      FClose 
  252. ;    9       FGet 
  253. ;    2       FPutLn 
  254. ;    1       Hangup
  255. ;    1       GetUser
  256. ;    2       PutUser
  257. ;    6       Delete 
  258. ;    7       Inc 
  259. ;    4       Tokenize 
  260. ;    18      GetToken 
  261. ;    1       Goodbye
  262. ;    16      AnsiPos 
  263. ;    1       FreshLine
  264. ;    1       FDefIn 
  265. ;    1       FDefOut 
  266. ;    2       Copy 
  267. ;
  268. ;
  269. ; ■ Functions used :
  270. ;
  271. ;    3       -
  272. ;    66      +
  273. ;    18      ==
  274. ;    1       <
  275. ;    1       <=
  276. ;    10      >=
  277. ;    12      !
  278. ;    2       &&
  279. ;    3       ||
  280. ;    2       Left()
  281. ;    2       Right()
  282. ;    3       Ferr()
  283. ;    6       U_Name()
  284. ;    1       NoChar()
  285. ;    1       YesChar()
  286. ;    8       Strip()
  287. ;    19      PPEPath()
  288. ;    2       Exist()
  289. ;    1       PPEName()
  290. ;    4       TokCount()
  291. ;
  292. ;------------------------------------------------------------------------------
  293. ;
  294. ; Analysis flags : WB
  295. ;
  296. ; W - Write user ■ 5
  297. ;     Program writes a user record. Although this may be normal for a
  298. ;     User Editor, it may also be a way to modify an account level.
  299. ;     ■ Search for : PUTUSER
  300. ;
  301. ; B - Brute hangup ■ 1
  302. ;     Program hangup without notification. This may be a good way to
  303. ;     disconnect a user, but if used randomly, may be very nasty
  304. ;     ■ Search for : HANGUP, DTROFF
  305. ;
  306. ;------------------------------------------------------------------------------
  307. ;
  308. ; Postprocessing report
  309. ;
  310. ;    1       For/Next
  311. ;    0       While/EndWhile
  312. ;    8       If/Then or If/Then/Else
  313. ;    0       Select Case
  314. ;
  315. ;------------------------------------------------------------------------------
  316. ;                 AEGiS Corp - Break the routines, code against the machines!
  317. ;------------------------------------------------------------------------------
  318.